<?php

/**
 * Description of UrlImages
 *
 * @author DOWN
 */
class UrlImages {

    public function test() {
        
        //$url = $_GET['url'];
        $url = "http://share.meebo.com/content/katy_perry/wallpapers/3.jpg"; 
        $url = str_replace("http:/", "http://", $url);

        $allowed = array('jpg', 'gif', 'png');
        $pos = strrpos($url, ".");
        $str = substr($url, ($pos + 1));

        $ch = curl_init();
        $timeout = 0;
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

// Getting binary data 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);

        $image = curl_exec($ch);
        curl_close($ch);
// output to browser 
        $im = @imagecreatefromstring($image);

        $tw = @imagesx($im);
        if (!$tw) {
            // Font directory + font name 
            $font = '../../fonts/Austrise.ttf';
            // Size of the font 
            $fontSize = 18;
            // Height of the image 
            $height = 32;
            // Width of the image 
            $width = 250;
            // Text 
            $str = 'Couldn\'t get image.';
            $img_handle = imagecreate($width, $height) or die("Cannot Create image");
            // Set the Background Color RGB 
            $backColor = imagecolorallocate($img_handle, 255, 255, 255);
            // Set the Text Color RGB 
            $txtColor = imagecolorallocate($img_handle, 20, 92, 137);
            $textbox = imagettfbbox($fontSize, 0, $font, $str) or die('Error in imagettfbbox function');
            $x = ($width - $textbox[4]) / 2;
            $y = ($height - $textbox[5]) / 2;
            imagettftext($img_handle, $fontSize, 0, $x, $y, $txtColor, $font, $str) or die('Error in imagettftext function');
            header('Content-Type: image/jpeg');
            imagejpeg($img_handle, NULL, 100);
            imagedestroy($img_handle);
        } else {
            if ($str == 'jpg' || $str == 'jpeg')
                header("Content-type: image/jpeg");
            if ($str == 'gif')
                header("Content-type: image/gif");
            if ($str == 'png')
                header("Content-type: image/png");
            $th = imagesy($im);
            $thumbWidth = 200;
            if ($tw <= $thumbWidth) {
                $thumbWidth = $tw;
            }
            $thumbHeight = $th * ($thumbWidth / $tw);
            $thumbImg = imagecreatetruecolor($thumbWidth, $thumbHeight);
            if ($str == 'gif') {
                $colorTransparent = imagecolortransparent($im);
                imagefill($thumbImg, 0, 0, $colorTransparent);
                imagecolortransparent($thumbImg, $colorTransparent);
            }
            if ($str == 'png') {
                imagealphablending($thumbImg, false);
                imagesavealpha($thumbImg, true);
                $transparent = imagecolorallocatealpha($thumbImg, 255, 255, 255, 127);
                imagefilledrectangle($thumbImg, 0, 0, $thumbWidth, $thumbHeight, $transparent);
            }
            imagecopyresampled($thumbImg, $im, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $tw, $th);


            if ($str == 'jpg' || $str == 'jpeg') {
                imagejpeg($thumbImg, NULL, 100);
            }
            if ($str == 'gif') {
                imagegif($thumbImg);
            }
            if ($str == 'png') {
                imagealphablending($thumbImg, TRUE);
                imagepng($thumbImg, NULL, 9, PNG_ALL_FILTERS);
            }

            imagedestroy($thumbImg);
        }
    }

    function get_images($url) {

        $url = 'http://galeri.haberturk.com/magazin/galeri/440481-seks-listesi-yayinlandi/1/9';
        $request = curl_init();
        curl_setopt_array($request, array
            (
            CURLOPT_URL => $url,
            CURLOPT_RETURNTRANSFER => TRUE,
            CURLOPT_HEADER => FALSE,
            CURLOPT_SSL_VERIFYPEER => TRUE,
            CURLOPT_CAINFO => 'cacert.pem',
            CURLOPT_FOLLOWLOCATION => TRUE,
            CURLOPT_MAXREDIRS => 10,
        ));
        $response = curl_exec($request);
        curl_close($request);

        $document = new DOMDocument();
        if ($response) {
            libxml_use_internal_errors(true);
            $document->loadHTML($response);
            libxml_clear_errors();
        }

        foreach ($document->getElementsByTagName('img') as $img) {
            // Extract what we want
            $image = array
                (
                'src' => $this->make_absolute($img->getAttribute('src'), $base),
            );

            // Skip images without src
            if (!$image['src'])
                continue;

            // Add to collection. Use src as key to prevent duplicates.
            $images[$image['src']] = $image;
        }
        $images = array_values($images);

        $result = array('images' => $images);
        echo json_encode($result);
    }

    function make_absolute($url, $base) {
        // Return base if no url
        if (!$url)
            return $base;

        // Return if already absolute URL
        if (parse_url($url, PHP_URL_SCHEME) != '')
            return $url;

        // Urls only containing query or anchor
        if ($url[0] == '#' || $url[0] == '?')
            return $base . $url;

        // Parse base URL and convert to local variables: $scheme, $host, $path
        extract(parse_url($base));

        // If no path, use /
        if (!isset($path))
            $path = '/';

        // Remove non-directory element from path
        $path = preg_replace('#/[^/]*$#', '', $path);

        // Destroy path if relative url points to root
        if ($url[0] == '/')
            $path = '';

        // Dirty absolute URL
        $abs = "$host$path/$url";

        // Replace '//' or '/./' or '/foo/../' with '/'
        $re = array('#(/\.?/)#', '#/(?!\.\.)[^/]+/\.\./#');
        for ($n = 1; $n > 0; $abs = preg_replace($re, '/', $abs, -1, $n)) {
            
        }

        // Absolute URL is ready!
        return $scheme . '://' . $abs;
    }

}
